package math

import (
	"math"
)

// Add 返回两个整数的和
func Add(a, b int) int {
	return a + b
}

// Subtract 返回两个整数的差
func Subtract(a, b int) int {
	return a - b
}

func Multiply(a, b int) int {
	return a * b
}

func Divide(a, b int) int {
	return a / b
}

// 幂次方
func Power(a, b int) int {
	return int(math.Pow(float64(a), float64(b)))
}

// 平方根
func Sqrt(a int) int {
	return int(math.Sqrt(float64(a)))
}

// 比较两个数，返回较大的一个
func max(a, b interface{}) interface{} {
	switch a := a.(type) {
	case int:
		if b, ok := b.(int); ok {
			if a > b {
				return a
			}
			return b
		}
		if b, ok := b.(float64); ok {
			if float64(a) > b {
				return float64(a)
			}
			return b
		}
	case float64:
		if b, ok := b.(int); ok {
			if a > float64(b) {
				return a
			}
			return float64(b)
		}
		if b, ok := b.(float64); ok {
			if a > b {
				return a
			}
			return b
		}
	}
	return nil
}
